<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 数组 => 一般用于存放一组相同类型的数据(多个)

    // 用数组表示一个人的姓名 班级 语文 数学 英语 (在数组中存储多项数据 -> 一般要求是相同类型的数据 -> JS弱类型 -> 存不同类型也可以)
    var zhang = ["张三", "2215", 55, 66, 77];

    // 缺点: => 对数据的描述不够详细  


    // JS基本数据类型 => 对象数据
    // 对象 -> 对一个或一类事物特征(属性)和行为(方法)的描述
    // 1. 对象是以键值对(key:value)的形式存在  键名:键值,  (键名(属性名) => 描述(文本)  键值(属性值) => 存放的数据(任意类型))
    // 2. 对象的键名是字符串类型, 对象的键名的字符串可以省略不写(js规范)

    // var zhang = {
    //     "name": "张三",
    //     "class": 2215,
    //     "chinese": 55,
    //     "math": 66,
    //     "english": 77
    // }
    // console.log(zhang);

    // var zhang = {
    //     name: "张三",  // 属性 (属性值 -> 不是函数)
    //     class: 2215,
    //     chinese: 55,
    //     math: 66,
    //     english: 77,
    //     say: function () {  // 方法 (属性值 -> 是函数)
    //         console.log("hello");
    //     }
    // }

    // console.log(zhang);

    // 对象的创建方式
    // (1) 字面量创建 
    var obj = {};   // 空对象
    console.log(obj);

    var zhang = {
        name: "张三",
        class: 2215,
        chinese: 55,
        math: 66,
        english: 77,
        say: function () {
            console.log("hello");
        }
    }
    console.log(zhang);

    // (2) 构造函数创建
    var obj = new Object(); // {} 空对象
    console.log(obj);

    var zhang = new Object({
        name: "张三",
        class: 2215,
        chinese: 55,
        math: 66,
        english: 77,
        say: function () {
            console.log("hello");
        }
    });
    console.log(zhang);








</script>

</html>